package model

import "fmt"

// TestModelName 首字母大写是公有的
var TestModelName string

// 因为定义的是私有属性，我们只能在本包使用
type student struct {
	Name  string
	score float64 //如果定义的字段也是私有的，我们同样使用返回指针的方法解决
}

// PublicStudent 工厂模式
func PublicStudent(n string, s float64) *student {
	return &student{
		Name:  n,
		score: s,
	}
}

// GetScore 返回私有字段的方法
func (s *student) GetScore() float64 {
	return s.score
}

func init() {
	fmt.Println("model包的init()")
	TestModelName = "测试值"
}
